package com.liangtian.mdm.dm.config.dao;

import com.liangtian.mdm.base.BaseDao;
import com.liangtian.mdm.dm.config.model.AttrConfig;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

//import org.apache.ibatis.annotations.Param;

@Repository
public interface AttrConfigDao extends BaseDao<AttrConfig> {

    /**
     * 查询所有没有被逻辑删除的属性列
     */
    public List<AttrConfig> queryAllAttributes(Map map);

    /**
     * 修改属性设置
     */
    public void updateAttrConfig(AttrConfig attrConfig);

    /**
     * 查询属性设置
     */
    public AttrConfig queryAttrConfig(String model_id, String attr_id);

    /**
     * 根据权限查询这个用户能看到的列
     */
    public List<AttrConfig> queryAttributesListPermision(Map map);

    /**
     * 查询有意义的业务属性(即未被逻辑删除的)
     */
    public List<AttrConfig> queryValidAttributeList(Map map);

    public List<AttrConfig> queryAttributeListStart(Map map);


    /**
     * 查询属性设置
     */
    public List<AttrConfig> queryAttributesListIsParent(Map map);

    public List<Map> queryBySql(String sql);

    public List<Map<String, Object>> queryAttrDataSourceTable(Map<String, Object> param);

    /**
     * 查询所有编码类型的属性
     */
    public List<Map<String, Object>> queryAllConfigCodeAttrs(Map<String, Object> param);

    //删除属性设置列
    public void batchDeleteAttrConfigByModelId(Map map);

    public AttrConfig queryAttrInfoByAttrColumn(Map<String, String> map);

    List<String> queryColumnForSelOption(Map map);

    List<AttrConfig> querySysTableForComments(String tableName);

    List<AttrConfig> queryMoreViewAttrForExport(String modelId);
}
